package cn.edu.ncu.housinghub.entity.user;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 实名认证信息表（对应identityInfo表）
 */
@Data
@NoArgsConstructor
public class IdentityInfo {
    
    @NotNull(message = "用户ID不能为空")
    private Long userId; // 关联用户ID（外键 -> USER.userId）
    
    @NotBlank(message = "身份证号不能为空")
    @Pattern(regexp = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$", 
             message = "身份证号格式错误")
    private String idCard; // 身份证号
    
    @NotBlank(message = "真实姓名不能为空")
    @Pattern(regexp = "^[\u4e00-\u9fa5]+$", message = "真实姓名必须为中文")
    private String realName; // 真实姓名
    
    private Integer faceVerify; // 人脸认证状态（0=未认证，1=已认证）
    
    public IdentityInfo(Long userId, String realName, String idCard) {
        this.userId = userId;
        this.realName = realName;
        this.idCard = idCard;
        this.faceVerify = 0; // 默认未进行人脸认证
    }
}
